Access to storage is part of conventional server virtualization systems. In server virtualization systems, the servers run virtual machines that allow efficient and cost-effective utilization of an information technology infrastructure. Each server can host multiple virtual machines with a goal to maximize utilization of an underlying hardware infrastructure of central processor units, memory, network interfaces, and storage. Hosting too many virtual machines on a server commonly leads to unacceptable levels of performance degradation for the virtual machines. Hosting a conservative number of virtual machines causes underutilization of the infrastructure.
Hosting considerations related to storage are not straightforward. Two factors with respect to storage infrastructures are capacity and bandwidth. The storage capacity can be allocated on demand and can be thinly provisioned to support a higher number of virtual machines. The storage bandwidth criterion is hard to predict. Various virtual machines generate a wide range of input/output workloads and bandwidth demands. The storage bandwidth is also affected by a presence or absence of caching appliances in the system. If the available storage bandwidth is known dynamically, system software can try to optimally match the demand and availability. Currently, no dynamic and reliable mechanism is known by which the system software knows how much storage bandwidth is available at a given time.
It would be desirable to implement dynamic bandwidth reporting for solid-state drives.